home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1994 March
/
Internet Info CD-ROM (Walnut Creek) (March 1994).iso
/
inet
/
internet-drafts
/
draft-ietf-ifmib-evolution-01.txt
< prev
next >
Wrap
Text File
|
1993-07-08
|
113KB
|
3,190 lines
Draft Interfaces Group Evolution June 1993
Evolution of the Interfaces Group of MIB-II
28 June 1993
Keith McCloghrie
Hughes LAN Systems
kzm@hls.com
Frank J. Kastenholz
FTP Software
kasten@ftp.com
Status of this Memo
This document is an Internet Draft. Internet Drafts are
working documents of the Internet Engineering Task Force
(IETF), its Areas, and its Working Groups. Note that other
groups may also distribute working documents as Internet
Drafts.
Internet Drafts are valid for a maximum of six months and may
be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet Drafts as reference
material or to cite them other than as a "work in progress".
Expires December 1993 [Page 1]
Draft Interfaces Group Evolution June 1993
1. Introduction
MIB-II [4] is the core set of managed objects defined for use
by network management of the Internet suite of protocols.
MIB-II was defined using the SNMPv1 Network Management
Framework.
This memo discusses the 'interfaces' group of MIB-II,
especially the experience gained from the definition of
numerous media-specific MIB modules for use in conjunction
with the 'interfaces' group for managing various sub-layers
beneath the internetwork-layer. It proposes clarifications
to, and extensions of, the architectural issues within the
current model used for the 'interfaces' group.
This memo also includes a MIB module. As well as including
new MIB definitions to support the architectural extensions,
this MIB module also re-specifies the 'interfaces' group of
MIB-II in a manner which is both compliant to the SNMPv2 SMI
and semantically-identical to the existing SNMPv1-based
definitions.
Expires December 1993 [Page 2]
Draft Interfaces Group Evolution June 1993
2. The SNMPv2 Network Management Framework
The SNMPv2 Network Management Framework consists of four major
components. They are:
o RFC 1442 which defines the SMI, the mechanisms used for
describing and naming objects for the purpose of
management.
o RFC 1213 defines MIB-II, the core set of managed objects
for the Internet suite of protocols.
o RFC 1445 which defines the administrative and other
architectural aspects of the framework.
o RFC 1448 which defines the protocol used for network
access to managed objects.
The Framework permits new objects to be defined for the
purpose of experimentation and evaluation.
2.1. Object Definitions
Managed objects are accessed via a virtual information store,
termed the Management Information Base or MIB. Objects in the
MIB are defined using the subset of Abstract Syntax Notation
One (ASN.1) defined in the SMI. In particular, each object
object type is named by an OBJECT IDENTIFIER, an
administratively assigned name. The object type together with
an object instance serves to uniquely identify a specific
instantiation of the object. For human convenience, we often
use a textual string, termed the descriptor, to refer to the
object type.
Expires December 1993 [Page 3]
Draft Interfaces Group Evolution June 1993
3. Experience with the Interfaces Group
One of the strengths of internetwork-layer protocols such as
IP [6] is that they are designed to run over any network
interface. In achieving this, IP considers any and all
protocols it runs over as a single "network interface" layer.
A similar view is taken by other internetwork-layer protocols.
This concept is represented in MIB-II by the 'interfaces'
group which defines a generic set of managed objects such that
any network interface can be managed in an interface-
independent manner through these managed objects. The
'interfaces' group provides the means for additional managed
objects specific to particular types of network interface
(e.g., a specific medium such as Ethernet) to be defined as
extensions to the 'interfaces' group for media-specific
management. Since the standardization of MIB-II, many such
media-specific MIB modules have been defined.
Experience in defining these media-specific MIB modules has
shown that the model defined by MIB-II is too simplistic
and/or static for some types of media-specific management. As
a result, some of these media-specific MIB modules have
assumed an evolution/loosening of the model. This memo is a
proposal to document/standardize the evolution of the model
and to fill in the gaps caused by that evolution.
A previous effort to extend the interfaces group resulted in
the publication of RFC 1229 [7]. As part of defining the
evolution of the interfaces group, this memo applies that
evolution to, and thereby incorporates the RFC 1229
extensions.
3.1. Areas of Clarification/Revision
There are seven areas for which experience indicates that
clarification, revision, or extension of the model would be
helpful. The next sections discuss these.
3.1.1. Interface Numbering
MIB-II defines an object, ifNumber, whose value represents:
"The number of network interfaces (regardless of their
Expires December 1993 [Page 4]
Draft Interfaces Group Evolution June 1993
current state) present on this system."
Each interface is identified by a unique value of the ifIndex
object, and the description of ifIndex constrains its value as
follows:
"Its value ranges between 1 and the value of ifNumber.
The value for each interface must remain constant at
least from one re-initialization of the entity's network
management system to the next re-initialization."
This constancy requirement on the value of ifIndex for a
particular interface is vital for efficient management.
However, an increasing number of devices allow for the dynamic
addition/removal of network interfaces. One example of this
is a dynamic ability to configure the use of SLIP/PPP over a
character-oriented port. For such dynamic additions/removals,
the combination of the constancy requirement and the
restriction that the value of ifIndex is less than ifNumber is
problematic.
3.1.2. Interface Sub-Layers
Experience in defining media-specific management information
has shown the need to distinguish between the multiple sub-
layers beneath the internetwork-layer. In addition, there is
a need to manage these sub-layers in devices (e.g., MAC-layer
bridges) which are unaware of which, if any, internetwork
protocols run over these sub-layers. As such, a model of
having a single conceptual row in the interfaces table (MIB-
II's ifTable) represent a whole interface underneath the
internetwork-layer, and having a single associated media-
specific MIB module (referenced by the ifSpecific object) is
too simplistic. A further problem arises with the value of
the ifType object which has enumerated values for each type of
interface.
Consider, for example, an interface with PPP running over an
HDLC link which uses a RS232-like connector. Each of these
sub-layers has its own media-specific MIB module. If all of
this is represented by a single conceptual row in the ifTable,
then an enumerated value for ifType is needed for that
specific combination, and that row's ifSpecific variable can
"point" to only one of the three media-specific MIB modules.
Expires December 1993 [Page 5]
Draft Interfaces Group Evolution June 1993
Furthermore, even if there was a convention for deciding which
MIB module is referenced by ifSpecific then there is still a
lack of a method to describe the relationship of all the sub-
layers of the MIB stack.
An associated problem is that of upward and downward
multiplexing of the sub-layers. An example of upward
multiplexing is MLP (Multi-Link) which provides load-sharing
over several serial lines by appearing as a single point-to-
point link to the sub-layer(s) above. An example of downward
multiplexing would be several instances of PPP, each running
over a Frame Relay virtual circuit, all of which run over the
same ISDN B channel. The current MIB structure does not allow
for these sorts of relationships to be described.
3.1.3. Virtual Circuits
Several of the sub-layers for which media-specific MIB modules
have been defined are connection oriented (e.g., Frame Relay,
X.25). Experience has shown that each effort to define such a
MIB module revisits the question of whether separate
conceptual rows in the ifTable are needed for each virtual
circuit. Most, if not all, of these efforts to date have
decided to have all virtual circuits reference a single
conceptual row in the ifTable.
3.1.4. Bit and Character Oriented Interfaces
RS-232 is an example of a character-oriented sub-layer over
which (e.g., through use of PPP) IP datagrams can be sent.
Due to the packet-based nature of many of the objects in the
ifTable, experience has shown that it is not appropriate to
have a character-oriented sub-layer represented by a (whole)
conceptual row in the ifTable.
Experience has also shown that it is sometimes desirable to
have some management information for bit-oriented interfaces,
which are similarly difficult to represent by a (whole)
conceptual row in the ifTable. For example, to manage the
channels of a DS1 circuit, where only some of the channels are
carrying packet-based data.
Expires December 1993 [Page 6]
Draft Interfaces Group Evolution June 1993
3.1.5. Counter Size
As the speed of network media increase, the minimum time in
which a 32 bit counter will wrap decreases. For example, on
an Ethernet, a stream of back-to-back, full-size packets will
cause ifInOctets to wrap in just over 57 minutes, for a T3
line, the minimum wrap-time is just over 12 minutes, and for
FDDI, it will wrap in 5.7 minutes. For a 1-gigabit medium,
the counter might wrap in as little as 34 seconds. Requiring
that interfaces be polled frequently enough not to miss a
counter wrap will be increasingly problematic.
3.1.6. Interface Speed
Network speeds are increasing. IfSpeed is limited to reporting
a maximum speed of (2**31)-1 bits/second, or approximately
2.2Gbs. SONET defines an OC-48 interface, which is defined at
operating at 48 times 51 Mbs, which is a speed in excess of
2.4gbits. Thus, ifSpeed will be of diminishing utility over
the next several years.
3.1.7. Multicast/Broadcast Counters
The counters in the ifTable for packets addressed to a
multicast or the broadcast address, are combined as counters
of non-unicast packets. In contrast, the ifExtensions MIB [7]
defines one set of counters for multicast, and a separate set
for broadcast packets. With the separate counters, the
original combined counters become redundant.
3.2. Clarifications/Revisions
The following clarifications and/or revisions are proposed.
3.2.1. Interface Numbering
One solution to the interface numbering problem would be to
redefine ifNumber to be the largest value of ifIndex, but the
utility of such an object is questionable, and such a re-
definition would require ifNumber to be deprecated. Thus, an
improvement would be to deprecate ifNumber and not replace it.
Expires December 1993 [Page 7]
Draft Interfaces Group Evolution June 1993
However, the deprecation of ifNumber would require a change to
that portion of ifIndex's definition which refers to ifNumber.
So, since the definition of ifIndex must be changed anyway in
order to solve the problem, changes to ifNumber do not benefit
the solution.
The solution adopted in this memo is just to delete the
requirement that the value of ifIndex must be less than the
value of ifNumber, and to retain ifNumber with its current
definition. It could be argued that this is a change in the
semantics of ifIndex; however, all existing implementations
conform to this new definition, and in the interests of not
requiring changes in existing implementations and in the many
existing media-specific MIBs, it is proposed that this change
does not require ifIndex to be deprecated.
This solution also results in the possibility of "holes" in
the ifTable, i.e., the ifIndex values of conceptual rows in
the ifTable are not necessarily contiguous, but SNMP's GetNext
(and SNMPv2's GetBulk) operation easily deals with such holes.
The value of ifNumber still represents the number of
conceptual rows, which increases/decreases as new interfaces
are dynamically added/removed. The vital constancy
requirement is met by requiring that after an interface is
dynamically removed, its ifIndex value is not re-used (by
another dynamically added interface) until after the following
re-initialization of the network management system. This
avoids the need for a priori assignment of ifIndex values for
all possible interfaces which might be added dynamically.
Because of the restriction of the value of ifIndex to be less
than ifNumber, interfaces have been numbered with small
integer values. This has led to the ability by humans to use
the ifIndex values as (somewhat) user-friendly names for
network interfaces (e.g., "interface number 3"). With the
relaxation of the restriction on the value of ifIndex, there
is now the possibility that ifIndex values could be assigned
as very large numbers (e.g., memory addresses). Such numbers
would be much less user-friendly. Therefore, this memo
recommends that ifIndex values still be assigned as small
integer values starting at 1, even though the values in use at
any one time are not necessarily contiguous. (Note that this
makes it easy for agents which dynamically add new interfaces,
to remember which values have been assigned.)
Expires December 1993 [Page 8]
Draft Interfaces Group Evolution June 1993
This proposed change introduces a new problem of its own.
Previously, there usually was a simple, direct, mapping of
interfaces to the physical ports on systems. This mapping
would be based on the ifIndex value. However, by removing the
previous restrictions on the values allowed for ifIndex, along
with the interface sub-layer concept (see the following
section), mapping from interfaces to physical ports becomes
increasingly problematic.
To address this issue, a new object, ifName, is added to the
MIB. This object contains the host's name for the interface
of which the relevant ifEntry is a component. For example, if
a router has an interface named wan1, which is composed of PPP
running over an RS-232 port, the ifName objects for the PPP
and RS-232 ifEntrys will contain the string "wan1".
3.2.2. Interface Sub-Layers
One possible but not recommended solution to the problem of
representing multiple sub-layers would be to retain the
concept of one conceptual row for all the sub-layers of an
interface and have each media-specific MIB module identify its
"superior" and "subordinate" sub-layers through OBJECT
IDENTIFIER "pointers". The drawbacks of this scheme are: 1)
that the superior/subordinate pointers are contained in the
media-specific MIB modules, and thus, a manager could not
learn the structure of an interface, without inspecting
multiple pointers in different MIB modules; this is overly
complex and only possible if the manager has knowledge of all
the relevant media-specific MIB modules; 2) current MIB
modules would all need to be retrofitted with these new
"pointers"; 3) this scheme does not adequately address the
problem of upward and downward multiplexing; and 4) enumerated
values of ifType are needed for each combination of sub-
layers.
Another possible but not recommended scheme would be to retain
the concept of one conceptual row for all the sub-layers of an
interface and have a new separate MIB table to identify the
"superior" and "subordinate" sub-layers and to contain OBJECT
IDENTIFIER "pointers" to media-specific MIBs. Effectively,
one conceptual row in the ifTable would represent each
combination of sub-layers between the internetwork-layer and
the wire. While this scheme has fewer drawbacks, it would
Expires December 1993 [Page 9]
Draft Interfaces Group Evolution June 1993
deprecate the use of ifSpecific and it still does not support
downward multiplexing, such as PPP over MLP: since MLP makes
two (or more) serial lines appear to the layers above as a
single physical interface, PPP over MLP should appear to the
internetwork-layer as a single interface; this scheme,
however, would result in two (or more) conceptual rows in the
ifTable, both of which the internetwork-layer would run over.
This scheme also requires enumerated values of ifType for each
combination of sub-layers.
The solution adopted in this memo is to have an individual
conceptual row in the ifTable to represent each sub-layer, and
have a new separate MIB table (the ifStackTable, see section 4
of this memo) to identify the "superior" and "subordinate"
sub-layers through INTEGER "pointers" to the appropriate
conceptual rows in the ifTable. This solution supports both
upward and downward multiplexing, allows the ifSpecific
pointer in each conceptual row of the ifTable to point to the
media-specific MIB module for that sub-layer, such that the
new table need only be referenced to obtain information about
layering, and it only requires enumerated values of ifType for
each sub-layer, not for combinations of them. However, it
does require that the descriptions of some objects in the
ifTable (specifically, ifType, ifPhysAddress, ifInUcastPkts,
and ifOutUcastPkts) be generalized so as to apply to any sub-
layer (rather than only to a sub-layer immediately beneath the
network layer, as at present), plus some (specifically,
ifSpeed) which need to have appropriate values identified for
use when a generalized definition does not apply to a
particular sub-layer.
In addition, this adopted solution makes no requirement that a
device, in which a sub-layer is instrumented by a conceptual
row of the ifTable, be aware of whether an internetwork
protocol runs on top of (i.e., at some layer above) that sub-
layer.
The designer of a medium-specific MIB must decide whether to
divide the interface into sub-layers or not, and if so, how to
make the divisions. The following guidance is offered to
assist the medium-specific MIB designer in these decisions.
In general, the number of entries in the ifTable should be
kept to the minimum required for network management. In
particular, a group of related interfaces should be treated as
Expires December 1993 [Page 10]
Draft Interfaces Group Evolution June 1993
a single interface with one entry in the ifTable providing
that:
(1) None of the group of interfaces performs multiplexing for
any other interface in the agent,
(2) There is a meaningful and useful way for all of the
ifTable's information (e.g., the counters, and the status
variables), and all of the ifTable's capabilities (e.g.,
write access to ifAdminStatus), to apply to the group of
interfaces as a whole.
Under these circumstances, there should be one ifEntry for
such a group of interfaces, and any internal structure which
needs to be represented to network management should be
captured in a MIB module specific to the particular type of
interface.
Note that application of bullet 2 above to the ifTable's
ifSpecific and ifType objects requires that there is a
meaningful medium- specific MIB and a meaningful ifType value
which apply to the group of interfaces as a whole. For
example, it is not appropriate to treat an HDLC sub-layer and
an RS-232 sub-layer as a single ifTable entry when the
medium-specific MIBs and the ifType values for HDLC and RS-232
are separate (rather than combined).
These guidelines are just that, guidelines. The designer of a
medium-specific MIB is free to lay out the MIB in whatever
manner is desired.
However, regardless of a medium-specific MIB's design, the
designer of a medium-specific MIB must completely state the
sub-layering model used for the MIB, and provide the
assumptions, reasoning, and rationale used to develop that
model.
3.2.3. Virtual Circuits
This memo recommends that, in general, connection-oriented
sub-layers do not have a conceptual row in the ifTable for
each virtual circuit. This avoids the proliferation of
conceptual rows, especially those which have considerable
redundant information. (Note, as a comparison, that
Expires December 1993 [Page 11]
Draft Interfaces Group Evolution June 1993
connection-less sub-layers do not have conceptual rows for
each remote address.) There may, however, be circumstances
under which it is appropriate for a virtual circuit of a
connection-oriented sub-layer to have its own conceptual row
in the ifTable; an example of this might be PPP over a Frame
Relay virtual circuit. The MIB in section 4 of this memo
supports such circumstances.
3.2.4. Bit and Character Oriented Interfaces
About half the objects in the ifTable are applicable to every
type of interface: packet-oriented, character-oriented, and
bit-oriented. Of the other half, two are applicable to both
character-oriented and packet-oriented interfaces, and the
rest are applicable only to packet-oriented interfaces. Thus,
while it is desirable for consistency to be able to represent
any/all types of interfaces in the ifTable, it is not possible
to implement the full ifTable for bit- and character-oriented
sub-layers.
One possible but not recommended solution to this problem
would be to split the ifTable into two (or more) new MIB
tables, one of which would contain objects that are relevant
only to packet-oriented interfaces (e.g. PPP), and another
that may be used by all interfaces. This is highly
undesirable since it would require changes in every agent
implementing the ifTable (i.e., just about every existing SNMP
agent).
The solution adopted in this memo builds upon the fact that
compliance statements in SNMPv2 (in contrast to SNMPv1) refer
to object groups, where object groups are explicitly defined
by listing the objects they contain. Thus, in SNMPv2,
multiple compliance statements can be specified, one for all
interfaces and additional ones for specific types of
interfaces. The separate compliance statements can be based
on separate object groups, where the object group for all
interfaces can contain only those objects from the ifTable
which are appropriate for every type of interfaces. Using
this solution, every sub-layer can have its own conceptual row
in the ifTable.
Thus, the following section contains definitions of the
objects of the existing 'interfaces' group of MIB-II, in a
Expires December 1993 [Page 12]
Draft Interfaces Group Evolution June 1993
manner which is both SNMPv2-compliant and semantically-
equivalent to the existing MIB-II definitions. With
equivalent semantics, and with the BER ("on the wire")
encodings unchanged, these definitions retain the same OBJECT
IDENTIFIER values as assigned by MIB-II. Thus, no rewrite of
existing agents is required.
Three new object groups are defined: the ifGeneralGroup
containing those objects applicable to all types of network
interfaces; the ifCharacterGroup containing those objects
applicable to character-oriented (but not packet-oriented)
network interfaces; and the ifPacketGroup containing those
objects applicable only to packet-oriented network interfaces.
3.2.5. Counter Size
Two approaches to addressing the shrinking minimum counter-
wrap time problem were evaluated. Counters could be scaled,
for example, ifInOctets could be changed to count received
octets in, e.g., 1024 byte blocks. Alternatively, the size of
the counter could be increased.
Scaling the counters was rejected. While it provides
acceptable performance at high count rates, at low rates it
suffers. If there is little traffic on an interface, there
might be a significant interval before enough counts occur to
cause a counter to be incremented. Traffic would then appear
to be very bursty, leading to incorrect conclusions of the
network's performance.
The alternative, which this memo adopts, is to provide
expanded, 64 bit, counters. These counters are provided in
two new groups, the "high capacity" packet counters group
(ifHCPacketGroup) and byte counters group
(ifHCCharacterGroup). These new groups provide new, 64 bit,
counters for use as appropriate.
The old, 32-bit, counters have not been deprecated. The 64-
bit counters are to be used only the 32-bit counters do not
provide enough capacity; that is, the 32 bit counters could
wrap too fast.
For interfaces that operate at 20,000,000 (20 million) bits
per second or less, 32-bit counters should be used. For
Expires December 1993 [Page 13]
Draft Interfaces Group Evolution June 1993
interfaces that operate faster than 20,000,000 bits/second,
64-bit counters should be used.
This speed was chosen as a reasonable compromise based on the
following issues:
(1) 64 bit counters are a new feature, introduced in SNMPv2.
It is reasonable to expect that support for them will be
spotty for the immediate future. Thus, we wish to limit
them to as few systems as possible. This, in effect,
means that 64-bit counters should be limited to higher
speed interfaces. Ethernet (10,000,000 bps) and Token
Ring (16,000,000 bps) are fairly wide-spread so it seems
reasonable to not require 64-bit counters for these
interfaces.
(2) The minimum interval required for polling interfaces
should be as long as possible. When running at full
speed (i.e. back-to-back, maximum sized packets), for the
following interfaces, the 32-bit ifxxxOctets counters
will wrap in the stated times:
- Ethernet will wrap in approximately 57 minutes,
- Token Ring at 16 megabits will wrap in approximately
36 minutes,
- A US T3 line, at 45 megabits, will wrap in
approximately 12 minutes,
- FDDI will wrap in approximately 5.7 minutes, and
- A giga-bit link will wrap in about 34 seconds.
(3) The required polling frequency should be somewhat higher
than the counter wrap time. This is necessary in order
to account for any possible packet transmission delays,
as well as packet losses (including the attendant timeout
and retransmission). We point out that, as network load
goes up, the counters will count faster (thus reducing
the time until the counter wraps) and transmission delays
will increase.
Based on these concerns, we have chosen 20,000,000 bits/second
as a raw-link speed, below which 32-bit counters are
Expires December 1993 [Page 14]
Draft Interfaces Group Evolution June 1993
sufficient and above which, 64-bit counters should be used.
This link speed will cause a 32-bit counter to wrap in just
under 28 minutes. This provides an 8 minute margin of error
when polling 16-megabit token ring.
As an aside, a 1-terabit (1,000 gigabits) link will cause a 64
bit counter to wrap in just under 5 years. Conversely, an
81,000,000 terabit/second link is required to cause a 64-bit
counter to wrap in 30 minutes. We believe that, while
technology rapidly marches forward, this link speed will not
be achieved for at least several years, by which time we can
consider introducing 128 bit counters.
3.2.6. Interface Speed
In order to deal with increasing interface speeds, we have
added an ifHighSpeed object.
This object reports the speed of the interface in 1,000,000 (1
million) bits/second units. Thus, the true speed of the
interface will be the value reported by this object, plus or
minus 500,000 bits/second.
Other alternatives considered were:
(1) Making the interface speed a 64-bit gauge. This was
rejected since the current SMI and set of textual
conventions do not include such an object. Therefore,
such a textual convention would have to be defined, with
the concomitant additional development efforts required.
Furthermore, this path would require that an additional
object be added to the MIB, replacing the current ifSpeed
object. We would not be able to economize on MIB object
counts. This path would also lead to confusion on the
part of manager stations; some agents would have just
ifSpeed, some would have just if64BitSpeed, and others
would have both.
Finally, this would require additional complexity in
agents in that the instances in which 64-bit operations
would be required would increase.
Expires December 1993 [Page 15]
Draft Interfaces Group Evolution June 1993
(2) We also considered making "high-32 bit" and "low-32-bit"
objects which, when combined, would be a 64-bit value.
This simply seemed overly complex for what we are trying
to do.
Furthermore, a full 64-bits of precision does not seem
necessary. IfHighSpeed will be the only report of
interface speed for interfaces that are faster than
2,147,483,647 bits per second. At this speed, the
granularity of ifHighSpeed will be 1,000,000 bits per
second, thus the error will be 1/2147, or about 0.05%.
This seems reasonable.
(3) Adding a "scale" object, which would define the units
which ifSpeed's value is.
This would require two additional objects; One for the
scaling object and one to replace the current ifSpeed.
This later object is required since the semantics of
ifSpeed would be significantly altered, and manager
stations which do not understand the new semantics would
be confused.
3.2.7. Multicast/Broadcast Counters
To avoid the redundancy of counting all non-unicast packets as
well as having individual multicast and broadcast packet
counters, we deprecate the use of the non-unicast counters,
which can be derived from the values of the others.
For the broadcast and multicast counters defined in RFC 1229,
their definitions varied slightly from the packet counters in
the ifTable, in that they did not count discarded packets. To
align the definitions better, the old counters are
deprecatedand replaced by new definitions. 64-bit versions of
these counters are also needed as explained above.
4. Use of the Interface Test Table
This section is a description of the use of the Interface Test
Table mostly copied from section 4.2 of RFC 1229 [7]. The
only change is the addition of ifExtnsTestContext. When the
Interface Test Table is accessed via SNMPv2,
Expires December 1993 [Page 16]
Draft Interfaces Group Evolution June 1993
ifExtnsTestContext records the context used, and
ifExtnsTestCommunity is set to the zero-length string; when
the Interface Test Table is accessed via SNMPv1,
ifExtnsTestCommunity records the community used, and
ifExtnsTestContext is set to { 0 0 }.
The Interface Test Table defines objects which allow a network
manager to instruct an agent to test an interface for various
faults. A few common types of tests are defined in this memo
but most will be defined elsewhere dependent on the particular
type of interface. After invoking a test, the object
ifExtnsTestResult can be read to determine the outcome. If an
agent can not perform the test, ifExtnsTestResult is set to so
indicate. The object ifExtnsTestCode can be used to provide
further test-specific or interface-specific (or even
enterprise-specific) information concerning the outcome of the
test. Only one test can be in progress on each interface at
any one time. If one test is in progress when another test is
invoked, the second test is rejected. Some agents may reject
a test when a prior test is active on another interface.
When a test is invoked, the identity of the originator of the
request and the request-id are saved by the agent in the
objects ifExtnsTestRequestId and either ifExtnsTestContext or
ifExtnsTestCommunity. These values remain set until the next
test is invoked. In the (rare) event that the invocation of
tests by two network managers were to overlap, then there is a
possibility that the first test's results might be overwritten
by the second test's results prior to the first results being
read. This unlikely circumstance can be detected by a network
manager retrieving ifExtnsTestRequestId and either
ifExtnsTestCommunity or ifExtnsTestContext, at the same time
as the test results are retrieved, and ensuring that the
results are for the desired request.
In general, a Management station must not retransmit a request
to invoke a test for which it does not receive a response;
instead, it properly inspects an agent's MIB to determine if
the invocation was successful. Only if the invocation was
unsuccessful, is the invocation request retransmitted.
Some tests may require the interface to be taken off-line in
order to execute them, or may even require the agent to reboot
after completion of the test. In these circumstances,
communication with the management station invoking the test
Expires December 1993 [Page 17]
Draft Interfaces Group Evolution June 1993
may be lost until after completion of the test. The agent
should make every effort to transmit a response to the request
which invoked the test prior to losing communication. When
the agent is restored to normal service, the results of the
test are properly made available in the appropriate objects.
Note that this requires that the ifIndex value assigned to an
interface must be unchanged even if the test causes a reboot.
An agent must reject any test for which it cannot, perhaps due
to resource constraints, make available at least the minimum
amount of information after that test completes.
Expires December 1993 [Page 18]
Draft Interfaces Group Evolution June 1993
5. Definitions
IF-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
Integer32, TimeTicks, experimental FROM SNMPv2-SMI
DisplayString, PhysAddress, RowStatus FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
mib-2, interfaces FROM RFC-1213;
-- from RFC 1239
ifExtensions OBJECT IDENTIFIER ::= { mib-2 12 }
ifMIB MODULE-IDENTITY
LAST-UPDATED "9306282355Z"
ORGANIZATION "IETF Interfaces MIB Working Group"
CONTACT-INFO
" Keith McCloghrie
Hughes LAN Systems
1225 Charleston Road
Mountain View, Ca. 94043
Tel: 415-966-7934
Fax: 415-966-7980
E-mail: kzm@hls.com."
DESCRIPTION
"The MIB module to describe generic objects for
network interface sub-layers. This MIB is an
updated version of MIB-II's ifTable, and
incorporates the extensions defined in RFC 1229."
::= { experimental xx }
ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }
Expires December 1993 [Page 19]
Draft Interfaces Group Evolution June 1993
-- the Interfaces group
ifNumber OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of network interfaces (regardless of
their current state) present on this system."
::= { interfaces 1 }
-- the Interfaces table
-- The Interfaces table contains information on the entity's
-- interfaces. Each sub-layer below the internetwork-layer
-- of a network interface is considered to be an interface.
ifTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of interface entries. The number of
entries is given by the value of ifNumber."
::= { interfaces 2 }
ifEntry OBJECT-TYPE
SYNTAX IfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing management information
applicable to a particular interface."
INDEX { ifIndex }
::= { ifTable 1 }
IfEntry ::=
SEQUENCE {
ifIndex Integer32,
ifDescr DisplayString,
ifType INTEGER,
ifMtu Integer32,
ifSpeed Gauge32,
ifPhysAddress PhysAddress,
Expires December 1993 [Page 20]
Draft Interfaces Group Evolution June 1993
ifAdminStatus INTEGER,
ifOperStatus INTEGER,
ifLastChange TimeTicks,
ifInOctets Counter32,
ifInUcastPkts Counter32,
ifInNUcastPkts Counter32,
ifInDiscards Counter32,
ifInErrors Counter32,
ifInUnknownProtos Counter32,
ifOutOctets Counter32,
ifOutUcastPkts Counter32,
ifOutNUcastPkts Counter32,
ifOutDiscards Counter32,
ifOutErrors Counter32,
ifOutQLen Gauge32,
ifSpecific OBJECT IDENTIFIER,
ifName DisplayString,
ifInMulticastPkts Counter32,
ifInBroadcastPkts Counter32,
ifOutMulticastPkts Counter32,
ifOutBroadcastPkts Counter32,
ifHCInOctets Counter64,
ifHCInUcastPkts Counter64,
ifHCInMulticastPkts Counter64,
ifHCInBroadcastPkts Counter64,
ifHCInDiscards Counter64,
ifHCInErrors Counter64,
ifHCInUnknownProtos Counter64,
ifHCOutOctets Counter64,
ifHCOutUcastPkts Counter64,
ifHCOutMulticastPkts Counter64,
ifHCOutBroadcastPkts Counter64,
ifHCOutDiscards Counter64,
ifHCOutErrors Counter64,
ifLinkUpDownTrapEnable INTEGER,
ifHighSpeed Gauge32
}
ifIndex OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A unique value, greater than zero, for each
interface. It is recommended that values are
Expires December 1993 [Page 21]
Draft Interfaces Group Evolution June 1993
assigned contiguously starting from 1. The value
for each interface sub-layer must remain constant
at least from one re-initialization of the
entity's network management system to the next
re-initialization."
::= { ifEntry 1 }
ifDescr OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A textual string containing information about the
interface. This string should include the name of
the manufacturer, the product name and the version
of the interface hardware/software."
::= { ifEntry 2 }
ifType OBJECT-TYPE
SYNTAX INTEGER {
other(1), -- none of the following
regular1822(2),
hdh1822(3),
ddn-x25(4),
rfc877-x25(5),
ethernet-csmacd(6),
iso88023-csmacd(7),
iso88024-tokenBus(8),
iso88025-tokenRing(9),
iso88026-man(10),
starLan(11),
proteon-10Mbit(12),
proteon-80Mbit(13),
hyperchannel(14),
fddi(15),
lapb(16),
sdlc(17),
ds1(18), -- T-1
e1(19), -- european equiv. of T-1
basicISDN(20),
primaryISDN(21), -- proprietary serial
propPointToPointSerial(22),
ppp(23),
softwareLoopback(24),
eon(25), -- CLNP over IP (RFC 1070)
Expires December 1993 [Page 22]
Draft Interfaces Group Evolution June 1993
ethernet-3Mbit(26),
nsip(27), -- XNS over IP
slip(28), -- generic SLIP
ultra(29), -- ULTRA technologies
ds3(30), -- T-3
sip(31), -- SMDS
frame-relay(32)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of interface."
::= { ifEntry 3 }
ifMtu OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The size of the largest datagram which can be
sent/received on the interface, specified in
octets. For interfaces that are used for
transmitting network datagrams, this is the size
of the largest network datagram that can be sent
on the interface."
::= { ifEntry 4 }
ifSpeed OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An estimate of the interface's current bandwidth
in bits per second. For interfaces which do not
vary in bandwidth or for those where no accurate
estimation can be made, this object should contain
the nominal bandwidth. If the bandwidth of the
interface is greater than the maximum value
reportable by this object then this object should
report its maximum value (2,147,483,647) and
ifHighSpeed must be used to report the interace's
speed. For a sub-layer which has no concept of
bandwidth, this object should be zero."
::= { ifEntry 5 }
Expires December 1993 [Page 23]
Draft Interfaces Group Evolution June 1993
ifPhysAddress OBJECT-TYPE
SYNTAX PhysAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The interface's address at its protocol sub-
layer. The interface's medium-specific MIB must
define the bit and byte ordering and format of the
value contained by this object. For interfaces
which do not have such an address (e.g., a serial
line), this object should contain an octet string
of zero length."
::= { ifEntry 6 }
ifAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The desired state of the interface. The
testing(3) state indicates that no operational
packets can be passed."
::= { ifEntry 7 }
ifOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), -- ready to pass packets
down(2),
testing(3) -- in some test mode
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current operational state of the interface.
The testing(3) state indicates that no operational
packets can be passed."
::= { ifEntry 8 }
ifLastChange OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
Expires December 1993 [Page 24]
Draft Interfaces Group Evolution June 1993
STATUS current
DESCRIPTION
"The value of sysUpTime at the time the interface
entered its current operational state. If the
current state was entered prior to the last re-
initialization of the local network management
subsystem, then this object contains a zero
value."
::= { ifEntry 9 }
ifInOctets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of octets received on the
interface, including framing characters."
::= { ifEntry 10 }
ifInUcastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were not
addressed to a multicast or broadcast address at
this sub-layer."
::= { ifEntry 11 }
ifInNUcastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were
addressed to a multicast or broadcast address at
this sub-layer.
This object is deprecated in favour of
ifInMulticastPkts and ifInBroadcastPkts."
::= { ifEntry 12 }
ifInDiscards OBJECT-TYPE
Expires December 1993 [Page 25]
Draft Interfaces Group Evolution June 1993
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of inbound packets which were chosen
to be discarded even though no errors had been
detected to prevent their being deliverable to a
higher-layer protocol. One possible reason for
discarding such a packet could be to free up
buffer space."
::= { ifEntry 13 }
ifInErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of inbound packets that contained
errors preventing them from being deliverable to a
higher-layer protocol."
::= { ifEntry 14 }
ifInUnknownProtos OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets received via the interface
which were discarded because of an unknown or
unsupported protocol."
::= { ifEntry 15 }
ifOutOctets OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of octets transmitted out of the
interface, including framing characters."
::= { ifEntry 16 }
ifOutUcastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
Expires December 1993 [Page 26]
Draft Interfaces Group Evolution June 1993
DESCRIPTION
"The total number of packets that higher-level
protocols requested be transmitted, and which were
not addressed to a multicast or broadcast address
at this sub-layer, including those that were
discarded or not sent."
::= { ifEntry 17 }
ifOutNUcastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS deprecated
DESCRIPTION
"The total number of packets that higher-level
protocols requested be transmitted, and which were
addressed to a multicast or broadcast address at
this sub-layer, including those that were
discarded or not sent.
This object is deprecated in favour of
ifOutMulticastPkts and ifOutBroadcastPkts."
::= { ifEntry 18 }
ifOutDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of outbound packets which were chosen
to be discarded even though no errors had been
detected to prevent their being transmitted. One
possible reason for discarding such a packet could
be to free up buffer space."
::= { ifEntry 19 }
ifOutErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of outbound packets that could not be
transmitted because of errors."
::= { ifEntry 20 }
ifOutQLen OBJECT-TYPE
Expires December 1993 [Page 27]
Draft Interfaces Group Evolution June 1993
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The length of the output packet queue (in
packets)."
::= { ifEntry 21 }
ifSpecific OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A reference to MIB definitions specific to the
particular media being used to realize the
interface. For example, if the interface is
realized by an ethernet, then the value of this
object refers to a document defining objects
specific to ethernet. If this information is not
present, its value should be set to the OBJECT
IDENTIFIER { 0 0 }, which is a syntactically valid
object identifier, and any conformant
implementation of ASN.1 and BER must be able to
generate and recognize this value."
::= { ifEntry 22 }
ifName OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The textual name of the interface which this
ifEntry comprises. The value of this object
should be the name of the interface as assigned by
the host and should be suitable for use in
commands entered at the host's `console'. This
might be a text name, such as `le0' or a simple
port number, such as `1', depending on the
interface naming syntax of the host. If there are
several ifEntrys that comprise the interface, then
each will have the same value of ifName. If there
is no local name, or this object is otherwise not
applicable, then this object contains a 0-length
string. "
::= { ifEntry 23 }
Expires December 1993 [Page 28]
Draft Interfaces Group Evolution June 1993
ifInMulticastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were
addressed to a multicast address at this sub-
layer. For a MAC layer protocol, this includes
both Group and Functional addresses."
::= { ifEntry 24 }
ifInBroadcastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were
addressed to a broadcast address at this sub-
layer."
::= { ifEntry 25 }
ifOutMulticastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of packets that higher-level
protocols requested be transmitted, and which were
addressed to a multicast address at this sub-
layer, including those that were discarded or not
sent. For a MAC layer protocol, this includes
both Group and Functional addresses."
::= { ifEntry 26 }
ifOutBroadcastPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of packets that higher-level
protocols requested be transmitted, and which were
addressed to a broadcast address at this sub-
layer, including those that were discarded or not
Expires December 1993 [Page 29]
Draft Interfaces Group Evolution June 1993
sent."
::= { ifEntry 27 }
--
-- High Capacity Counter objects. These objects are all
-- 64 bit versions of the "basic" ifEntry counters. These
-- objects all have the same basic semantics as their 32-bit
-- counterparts, however, their syntax has been extended
-- to 64 bits.
--
ifHCInOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of octets received on the
interface, including framing characters. This
object is a 64-bit version of ifInOctets."
::= { ifEntry 28 }
ifHCInUcastPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were not
addressed to a multicast or broadcast address at
this sub-layer. This object is a 64-bit version
of ifInUcastPkts."
::= { ifEntry 29 }
ifHCInMulticastPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were
addressed to a multicast address at this sub-
layer. For a MAC layer protocol, this includes
both Group and Functional addresses. This object
is a 64-bit version of ifInMulticastPkts."
::= { ifEntry 30 }
Expires December 1993 [Page 30]
Draft Interfaces Group Evolution June 1993
ifHCInBroadcastPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets, delivered by this sub-
layer to a higher (sub-)layer, which were
addressed to a broadcast address at this sub-
layer. This object is a 64-bit version of
ifInBroadcastPkts."
::= { ifEntry 31 }
ifHCInDiscards OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of inbound packets which were chosen
to be discarded even though no errors had been
detected to prevent their being deliverable to a
higher (sub-)layer. One possible reason for
discarding such a packet could be to free up
buffer space. This object is a 64-bit version of
ifInDiscards."
::= { ifEntry 32 }
ifHCInErrors OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of inbound packets that contained
errors preventing them from being deliverable to a
higher (sub-)layer. This object is a 64-bit
version of ifInErrors."
::= { ifEntry 33 }
ifHCInUnknownProtos OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of packets received via the interface
which were discarded because of an unknown or
unsupported protocol. This object is a 64-bit
Expires December 1993 [Page 31]
Draft Interfaces Group Evolution June 1993
version of ifInUnknownProtos."
::= { ifEntry 34 }
ifHCOutOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of octets transmitted out of the
interface, including framing characters. This
object is a 64-bit version of ifOutOctets."
::= { ifEntry 35 }
ifHCOutUcastPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of packets that higher-level
protocols requested be transmitted, and which were
not addressed to a multicast or broadcast address
at this sub-layer, including those that were
discarded or not sent. This object is a 64-bit
version of ifOutUcastPkts."
::= { ifEntry 36 }
ifHCOutMulticastPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of packets that higher-level
protocols requested be transmitted, and which were
addressed to a multicast address at this sub-
layer, including those that were discarded or not
sent. For a MAC layer protocol, this includes
both Group and Functional addresses. This object
is a 64-bit version of ifOutMulticastPkts."
::= { ifEntry 37 }
ifHCOutBroadcastPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
Expires December 1993 [Page 32]
Draft Interfaces Group Evolution June 1993
"The total number of packets that higher-level
protocols requested be transmitted, and which were
addressed to a broadcast address at this sub-
layer, including those that were discarded or not
sent. This object is a 64-bit version of
ifOutBroadcastPkts."
::= { ifEntry 38 }
ifHCOutDiscards OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of outbound packets which were chosen
to be discarded even though no errors had been
detected to prevent their being transmitted. One
possible reason for discarding such a packet could
be to free up buffer space. This object is a 64-
bit version of ifOutDiscards."
::= { ifEntry 39 }
ifHCOutErrors OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of outbound packets that could not be
transmitted because of errors. This object is a
64-bit version of ifOutErrors."
::= { ifEntry 40 }
ifLinkUpDownTrapEnable OBJECT-TYPE
SYNTAX INTEGER { enabled(1), disabled(2) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates whether linkUp/linkDown traps should be
generated for this interface.
By default, this object should have the value
enabled(1) for interfaces which do not operate on
'top' of any other interface (as defined in the
ifStackTable), and disabled(2) otherwise."
::= { ifEntry 41 }
Expires December 1993 [Page 33]
Draft Interfaces Group Evolution June 1993
ifHighSpeed OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An estimate of the interface's current bandwidth
in units of 1,000,000 bits per second. If this
object reports a value of `n' then the speed of
the interface is somewhere in the range of `n-
500,000' to `n+499,999'. For interfaces which do
not vary in bandwidth or for those where no
accurate estimation can be made, this object
should contain the nominal bandwidth. For a sub-
layer which has no concept of bandwidth, this
object should be zero."
::= { ifEntry 42 }
Expires December 1993 [Page 34]
Draft Interfaces Group Evolution June 1993
--
-- The Interface Stack Group
--
-- Implementation of this group is mandatory for all systems
--
ifStackTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfStackEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The table containing information on the
relationships between the multiple sub-layers of
network interfaces. In particular, it contains
information on which sub-layers run 'on top of'
which other sub-layers. Each sub-layer
corresponds to a conceptual row in the ifTable."
::= { ifMIBObjects 1 }
ifStackEntry OBJECT-TYPE
SYNTAX IfStackEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Information on a particular relationship between
two sub-layers, specifying that one sub-layer runs
on 'top' of the other sub-layer. Each sub-layer
corresponds to a conceptual row in the ifTable."
INDEX { ifStackHigherLayer, ifStackLowerLayer }
::= { ifStackTable 1 }
IfStackEntry ::=
SEQUENCE {
ifStackHigherLayer Integer32,
ifStackLowerLayer Integer32,
ifStackStatus RowStatus
}
ifStackHigherLayer OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS not-accessible
STATUS current
Expires December 1993 [Page 35]
Draft Interfaces Group Evolution June 1993
DESCRIPTION
"The value of ifIndex corresponding to the higher
sub-layer of the relationship, i.e., the sub-layer
which runs on 'top' of the sub-layer identified by
the corresponding instance of ifStackLowerLayer.
If there is no higher sub-layer (below the
internetwork layer), then this object has the
value 0."
::= { ifStackEntry 1 }
ifStackLowerLayer OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The value of ifIndex corresponding to the lower
sub-layer of the relationship, i.e., the sub-layer
which runs 'below' the sub-layer identified by the
corresponding instance of ifStackHigherLayer. If
there is no lower sub-layer, then this object has
the value 0."
::= { ifStackEntry 2 }
ifStackStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The status of the relationship between two sub-
layers.
Changing the value of this object from 'active' to
'notInService' or 'destroy' will likely have
consequences up and down the interface stack.
Thus, write access to this object is likely to be
inappropriate for some types of interfaces, and
many implementations will choose not to support
write-access for any type of interface."
::= { ifStackEntry 3 }
Expires December 1993 [Page 36]
Draft Interfaces Group Evolution June 1993
-- Interface Extension Table
--
-- This group of objects is mandatory for all types of
-- subnetwork interface.
ifExtnsTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfExtnsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of interfaces extension entries. The
number of entries is given by the value of
ifNumber."
::= { ifExtensions 1 }
ifExtnsEntry OBJECT-TYPE
SYNTAX IfExtnsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An extension to the ifTable containing additional
objects at the subnetwork layer and below for a
particular interface."
AUGMENTS { ifEntry }
::= { ifExtnsTable 1 }
IfExtnsEntry ::=
SEQUENCE {
ifExtnsChipSet OBJECT IDENTIFIER,
ifExtnsRevWare DisplayString,
ifExtnsPromiscuous INTEGER
}
ifExtnsChipSet OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object identifies the hardware chip set
being used in the interface. The assignment of
OBJECT IDENTIFIERs to various types of hardware
chip sets is defined elsewhere. If the hardware
chip set is unknown, the object identifier
unknownChipSet OBJECT IDENTIFIER ::= { 0 0 }
Expires December 1993 [Page 37]
Draft Interfaces Group Evolution June 1993
is returned. Note that unknownChipSet is a
syntactically valid object identifier, and any
conformant implementation of ASN.1 and the BER
must be able to generate and recognize this
value."
::= { ifExtnsEntry 2 }
ifExtnsRevWare OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"An arbitrary octet string that describes the
firmware version of this interface. It is
intended that this should be human readable. It
must only contain ASCII printable characters.
Typically this will be the firmware version of the
main interface software."
::= { ifExtnsEntry 3 }
ifExtnsPromiscuous OBJECT-TYPE
SYNTAX INTEGER {
true(1),
false(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object has a value of false(2) if this
interface only accepts packets/frames that are
addressed to this station. This object has a value
of true(1) when the station accepts all
packets/frames transmitted on the media. The
value true(1) is only legal on certain types of
media. If legal, setting this object to a value
of true(1) may require the interface to be reset
before becoming effective."
::= { ifExtnsEntry 8 }
Expires December 1993 [Page 38]
Draft Interfaces Group Evolution June 1993
--
-- The Interface Test Table
--
-- This group of objects is optional.
ifExtnsTestTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfExtnsTestEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains one entry per interface."
::= { ifExtensions 2 }
ifExtnsTestEntry OBJECT-TYPE
SYNTAX IfExtnsTestEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing objects for invoking tests on
an interface."
AUGMENTS { ifEntry }
::= { ifExtnsTestTable 1 }
IfExtnsTestEntry ::=
SEQUENCE {
ifExtnsTestCommunity OCTET STRING,
ifExtnsTestRequestId INTEGER,
ifExtnsTestType OBJECT IDENTIFIER,
ifExtnsTestResult INTEGER,
ifExtnsTestCode OBJECT IDENTIFIER,
ifExtnsTestContext OBJECT IDENTIFIER
}
ifExtnsTestCommunity OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object contains the name of the SNMPv1
authentication community (see RFC 1157) which was
used to authenticate the SNMPv1 message which
invoked the current or most recent test on this
interface. If the authentication community is
unknown or undefined, or the current or more
recent test was invoked with an SNMPv2 message,
Expires December 1993 [Page 39]
Draft Interfaces Group Evolution June 1993
then this value contains the zero-length string."
::= { ifExtnsTestEntry 2 }
ifExtnsTestRequestId OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object contains the value of the request-id
field in the SNMP PDU (see RFCs 1157 and 1448)
which invoked the current or most recent test on
this interface. If the request-id is unknown or
undefined, this value contains the value zero."
::= { ifExtnsTestEntry 3 }
ifExtnsTestType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A control variable used to start and stop
operator-initiated interface tests. Most OBJECT
IDENTIFIER values assigned to tests are defined
elsewhere, in associ- ation with specific types of
interface. However, this document assigns a value
for a full-duplex loopback test, and defines the
special meanings of the subject identifier:
noTest OBJECT IDENTIFIER ::= { 0 0 }
When the value noTest is written to this object,
no action is taken unless a test is in progress,
in which case the test is aborted. Writing any
other value to this object is only valid when no
test is currently in progress, in which case the
indicated test is initiated. Note that noTest is
a syntactically valid object identifier, and any
conformant implementation of ASN.1 and BER must be
able to generate and recognize this value.
When read, this object always returns the most
recent value that ifExtnsTestType was set to. If
it has not been set since the last initialization
of the network management subsystem on the agent,
a value of noTest is returned."
Expires December 1993 [Page 40]
Draft Interfaces Group Evolution June 1993
::= { ifExtnsTestEntry 4 }
wellKnownTests OBJECT IDENTIFIER ::= { ifExtensions 4 }
-- full-duplex loopback test
testFullDuplexLoopBack OBJECT IDENTIFIER ::= { wellKnownTests 1 }
ifExtnsTestResult OBJECT-TYPE
SYNTAX INTEGER {
none(1), -- no test yet requested
success(2),
inProgress(3),
notSupported(4),
unAbleToRun(5), -- due to state of system
aborted(6),
failed(7)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object contains the result of the most
recently requested test, or the value none(1) if
no tests have been requested since the last reset.
Note that this facility provides no provision for
saving the results of one test when starting
another, as could be required if used by multiple
managers concurrently."
::= { ifExtnsTestEntry 5 }
ifExtnsTestCode OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object contains a code which contains more
specific information on the test result, for
example an error-code after a failed test. Error
codes and other values this object may take are
specific to the type of interface and/or test.
However, one subject identifier:
testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 }
for use if no additional result code is available.
Note that testCodeUnknown is a syntactically valid
Expires December 1993 [Page 41]
Draft Interfaces Group Evolution June 1993
object identifier, and any conformant
implementation of ASN.1 and the BER must be able
to generate and recognize this value."
::= { ifExtnsTestEntry 6 }
ifExtnsTestContext OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object contains the identity of the SNMPv2
context referenced by the SNMPv2 Message which
invoked the current or most recent test on this
interface. If the current or most recent test was
invoked by an SNMPv1 message, then this object
contains the value { 0 0 }."
::= { ifExtnsTestEntry 7 }
-- Generic Receive Address Table
--
-- This group of objects is mandatory for all types of
-- interfaces which can receive packets/frames addressed to
-- more than one address.
--
-- This conceptual table has been deprecated since the
-- semantics of adding and deleting conceptual rows have
-- been changed by the replacement of ifExtnsRcvAddrStatus
-- with ifRcvAddrStatus which uses the RowStatus Textual
-- convention.
ifExtnsRcvAddrTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfExtnsRcvAddrEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"This table contains an entry for each address
(broadcast, multicast, or uni-cast) for which the
system will receive packets/frames on a particular
interface, except as follows:
- for an interface operating in promiscuous mode,
entries are only required for those addresses for
which the system would receive frames were it not
operating in promiscuous mode.
Expires December 1993 [Page 42]
Draft Interfaces Group Evolution June 1993
- for 802.5 functional addresses, only one entry
is required, for the address which has the
functional address bit ANDed with the bit mask of
all functional addresses for which the interface
will accept frames."
::= { ifExtensions 3 }
ifExtnsRcvAddrEntry OBJECT-TYPE
SYNTAX IfExtnsRcvAddrEntry
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"A list of objects identifying an address for
which the system will accept packets/frames on the
particular interface identified by the index value
ifIndex."
INDEX { ifIndex, ifExtnsRcvAddrAddress }
::= { ifExtnsRcvAddrTable 1 }
IfExtnsRcvAddrEntry ::=
SEQUENCE {
ifExtnsRcvAddrAddress PhysAddress,
ifExtnsRcvAddrStatus INTEGER
}
ifExtnsRcvAddrAddress OBJECT-TYPE
SYNTAX PhysAddress
MAX-ACCESS not-accessible
STATUS deprecated
DESCRIPTION
"An address for which the system will accept
packets/frames on this entry's interface."
::= { ifExtnsRcvAddrEntry 2 }
ifExtnsRcvAddrStatus OBJECT-TYPE
SYNTAX INTEGER {
other(1),
invalid(2),
volatile(3),
nonVolatile(4)
}
MAX-ACCESS read-write
STATUS deprecated
DESCRIPTION
"This object has the value nonVolatile(4) for
Expires December 1993 [Page 43]
Draft Interfaces Group Evolution June 1993
those entries in the table which are valid and
will not be deleted by the next restart of the
managed system. Entries having the value
volatile(3) are valid and exist, but have not been
saved, so that will not exist after the next
restart of the managed system. Entries having the
value other(1) are valid and exist but are not
classified as to whether they will continue to
exist after the next restart. Entries having the
value invalid(2) are invalid and do not represent
an address for which an interface accepts frames.
Setting an object instance to one of the values
other(1), volatile(3), or nonVolatile(4) causes
the corresponding entry to exist or continue to
exist, and to take on the respective status as
regards the next restart of the managed system.
Setting an object instance to the value invalid(2)
causes the corresponding entry to become invalid
or cease to exist. Note that it may be
inappropriate for some addresses to be
invalidated. Accordingly, an agent may return an
error response if a management station attempts to
change this object to an inappropriate value.
It is an implementation-specific matter as to
whether the agent removes an invalidated entry
from the table. Accordingly, management stations
must be prepared to receive tabular information
from agents that corresponds to entries not
currently in use. Proper interpretation of such
entries requires examination of the relevant
ifExtnsRcvAddrStatus object instance."
DEFVAL { volatile }
::= { ifExtnsRcvAddrEntry 3 }
-- Generic Receive Address Table
--
-- This group of objects is mandatory for all types of
-- interfaces which can receive packets/frames addressed to
-- more than one address.
--
Expires December 1993 [Page 44]
Draft Interfaces Group Evolution June 1993
-- This table replaces the ifExtnsRcvAddr table. The main
-- difference is that this table makes use of the RowStatus
-- textual convention, while ifExtnsRcvAddr does not.
ifRcvAddrTable OBJECT-TYPE
SYNTAX SEQUENCE OF IfRcvAddrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains an entry for each address
(broadcast, multicast, or uni-cast) for which the
system will receive packets/frames on a particular
interface, except as follows:
- for an interface operating in promiscuous mode,
entries are only required for those addresses for
which the system would receive frames were it not
operating in promiscuous mode.
- for 802.5 functional addresses, only one entry
is required, for the address which has the
functional address bit ANDed with the bit mask of
all functional addresses for which the interface
will accept frames."
::= { ifMIBObjects 2 }
ifRcvAddrEntry OBJECT-TYPE
SYNTAX IfRcvAddrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of objects identifying an address for
which the system will accept packets/frames on the
particular interface identified by the index value
ifIndex."
INDEX { ifIndex, ifRcvAddrAddress }
::= { ifRcvAddrTable 1 }
IfRcvAddrEntry ::=
SEQUENCE {
ifRcvAddrAddress PhysAddress,
ifRcvAddrStatus INTEGER,
ifRcvAddrType
}
Expires December 1993 [Page 45]
Draft Interfaces Group Evolution June 1993
ifRcvAddrAddress OBJECT-TYPE
SYNTAX PhysAddress
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An address for which the system will accept
packets/frames on this entry's interface."
::= { ifRcvAddrEntry 1 }
ifRcvAddrStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-write
DESCRIPTION
"This object is used to create and delete rows in
the ifRcvAddrTable."
::= { ifRcvAddrEntry 2 }
ifRcvAddrType OBJECT-TYPE
SYNTAX INTEGER {
other(1),
volatile(2),
nonVolatile(3)
}
MAX-ACCESS read-write
DESCRIPTION
"This object has the value nonVolatile(4) for
those entries in the table which are valid and
will not be deleted by the next restart of the
managed system. Entries having the value
volatile(3) are valid and exist, but have not been
saved, so that will not exist after the next
restart of the managed system. Entries having the
value other(1) are valid and exist but are not
classified as to whether they will continue to
exist after the next restart. Entries having the
value invalid(2) are invalid and do not represent
an address for which an interface accepts frames.
Setting an object instance to one of the values
other(1), volatile(3), or nonVolatile(4) causes
the corresponding entry to exist or continue to
exist, and to take on the respective status as
regards the next restart of the managed system.
Expires December 1993 [Page 46]
Draft Interfaces Group Evolution June 1993
DEFVAL { volatile }
::= { ifRcvAddrEntry 3 }
Expires December 1993 [Page 47]
Draft Interfaces Group Evolution June 1993
-- conformance information
ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }
ifGroups OBJECT IDENTIFIER ::= { ifConformance 1 }
ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }
-- compliance statements
ifCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for SNMPv2 entities
which have network interfaces."
MODULE -- this module
MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }
GROUP ifCharacterGroup
DESCRIPTION
"This group is mandatory only for those network
interfaces which are character-oriented or
packet-oriented and for which the value of the
corresponding instance of ifSpeed is less than or
equal to 20,000,000 bits/second."
GROUP ifHCCharacterGroup
DESCRIPTION
"This group is mandatory only for those network
interfaces which are character-oriented or
packet-oriented and for which the value of the
corresponding instance of ifSpeed is greater than
20,000,000 bits/second."
GROUP ifPacketGroup
DESCRIPTION
"This group is mandatory only for those network
interfaces which are packet-oriented and for which
the value of the corresponding instance of ifSpeed
is less than or equal to 20,000,000 bits/second."
GROUP ifHCPacketGroup
DESCRIPTION
"This group is mandatory only for those network
Expires December 1993 [Page 48]
Draft Interfaces Group Evolution June 1993
interfaces which are packet-oriented and for which
the value of the corresponding instance of ifSpeed
is greater than 20,000,000 bits/second."
GROUP ifTestGroup
DESCRIPTION
"This group is optional."
GROUP ifRcvAddressGroup
DESCRIPTION
"This group is mandatory only for interfaces which
can receive packets/frames addressed to more than
one address."
OBJECT ifExtnsPromiscuous
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT ifStackStatus
SYNTAX INTEGER { active(1) } -- subset of RowStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, and only one of the
six enumerated values for the RowStatus textual
convention need be supported, specifically:
active(1)."
::= { ifCompliances 1 }
Expires December 1993 [Page 49]
Draft Interfaces Group Evolution June 1993
-- units of conformance
ifGeneralGroup OBJECT-GROUP
OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
ifAdminStatus, ifOperStatus, ifLastChange,
ifSpecific, ifLinkUpDownTrapEnable,
ifHighSpeed, ifExtnsChipSet, ifExtnsRevWare,
ifExtnsPromiscuous }
STATUS current
DESCRIPTION
"A collection of objects providing information
applicable to all network interfaces."
::= { ifGroups 1 }
ifCharacterGroup OBJECT-GROUP
OBJECTS { ifInOctets, ifOutOctets }
STATUS current
DESCRIPTION
"A collection of objects providing information
specific to low and medium speed (less than or
equal to 20,000,000 bits/second) packet-oriented
or character-oriented network interfaces."
::= { ifGroups 2 }
ifHCCharacterGroup OBJECT-GROUP
OBJECTS { ifHCInOctets, ifHCOutOctets }
STATUS current
DESCRIPTION
"A collection of objects providing information
specific to high speed (greater than 20,000,000
bits/second) packet-oriented or character-oriented
network interfaces."
::= { ifGroups 3 }
ifPacketGroup OBJECT-GROUP
OBJECTS { ifMtu, ifInUcastPkts, ifInMulticastPkts,
ifInBroadcastPkts, ifInDiscards, ifInErrors,
ifInUnknownProtos, ifOutUcastPkts,
ifOutMulticastPkts, ifOutBroadcastPkts,
ifOutDiscards, ifOutErrors, ifOutQLen }
STATUS current
DESCRIPTION
"A collection of objects providing information
specific to low and medium speed (less than or
equal to 20,000,000 bits/second) packet-oriented
Expires December 1993 [Page 50]
Draft Interfaces Group Evolution June 1993
network interfaces."
::= { ifGroups 4 }
ifHCPacketGroup OBJECT-GROUP
OBJECTS { ifMtu, ifHCInUcastPkts, ifHCInMulticastPkts,
ifHCInBroadcastPkts, ifHCInDiscards, ifHCInErrors,
ifHCInUnknownProtos, ifHCOutUcastPkts,
ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
ifHCOutDiscards, ifHCOutErrors, ifHCOutQLen }
STATUS current
DESCRIPTION
"A collection of objects providing information
specific to high speed (greater than 20,000,000
bits/second) packet-oriented network interfaces."
::= { ifGroups 5 }
ifRcvAddressGroup OBJECT-GROUP
OBJECTS { ifRcvAddrStatus, ifRcvAddrType }
STATUS current
DESCRIPTION
"A collection of objects providing information on
the multiple addresses which an interface
receives."
::= { ifGroups 6 }
ifTestGroup OBJECT-GROUP
OBJECTS { ifExtnsTestCommunity, ifExtnsTestRequestId
ifExtnsTestType, ifExtnsTestResult,
ifExtnsTestCode, ifExtnsTestContext }
STATUS current
DESCRIPTION
"A collection of objects providing the ability to
invoke tests on an interface."
::= { ifGroups 7 }
ifStackGroup OBJECT-GROUP
OBJECTS { ifStackStatus }
STATUS current
DESCRIPTION
"A collection of objects providing information on
the layering of MIB-II interfaces."
::= { ifGroups 8 }
END
Expires December 1993 [Page 51]
Draft Interfaces Group Evolution June 1993
6. Acknowledgements
The proposals in this memo are the result of conversations and
discussions with many people, including at least the
following: Fred Baker, Ted Brunner, Chuck Davin, Jeremy
Greene, Marshall Rose, Kaj Tesink, and Dean Throop. However,
it does not necessarily represent any consensus among the
above-mentioned.
Expires December 1993 [Page 52]
Draft Interfaces Group Evolution June 1993
7. References
[1] J. Case, K. McCloghrie, M. Rose, and S. Waldbusser,
Structure of Management Information for version 2 of the
Simple Network Management Protocol (SNMPv2), Request for
Comments 1442, April 1993.
[2] J. Galvin, K. McCloghrie, Administrative Model for
version 2 of the Simple Network Management Protocol
(SNMPv2), Request for Comments 1448, April 1993.
[3] J. Case, K. McCloghrie, M. Rose, and S. Waldbusser,
Protocol Operations for version 2 of the Simple Network
Management Protocol (SNMPv2), Request for Comments 1448,
April 1993.
[4] K. McCloghrie and M.T. Rose, Management Information Base
for Network Management of TCP/IP-based internets - MIB-
II, Request for Comments 1213. March 1991.
[5] J.D. Case, M.S. Fedor, M.L. Schoffstall, and J.R. Davin,
Simple Network Management Protocol, Request for Comments
1157. May 1990.
[6] J. Postel, Internet Protocol, Request for Comments 791,
September 1981.
[7] K. McCloghrie, Extensions to the Generic-Interface MIB,
Request for Comments 1229, May 1991.
Expires December 1993 [Page 53]
Draft Interfaces Group Evolution June 1993
8. Security Considerations
Security issues are not discussed in this memo.
9. Authors' Address
Keith McCloghrie
Hughes LAN Systems
1225 Charleston Rd,
Mountain View, Ca 94043
415-966-7934
kzm@hls.com
Frank Kastenholz
FTP Software
2 High Street
North Andover, Mass. USA 01845
(508)685-4000
kasten@ftp.com
Expires December 1993 [Page 54]
Draft Interfaces Group Evolution June 1993
Table of Contents
1 Introduction .......................................... 2
2 The SNMPv2 Network Management Framework ............... 3
2.1 Object Definitions .................................. 3
3 Experience with the Interfaces Group .................. 4
3.1 Areas of Clarification/Revision ..................... 4
3.1.1 Interface Numbering ............................... 4
3.1.2 Interface Sub-Layers .............................. 5
3.1.3 Virtual Circuits .................................. 6
3.1.4 Bit and Character Oriented Interfaces ............. 6
3.1.5 Counter Size ...................................... 7
3.1.6 Interface Speed ................................... 7
3.1.7 Multicast/Broadcast Counters ...................... 7
3.2 Clarifications/Revisions ............................ 7
3.2.1 Interface Numbering ............................... 7
3.2.2 Interface Sub-Layers .............................. 9
3.2.3 Virtual Circuits .................................. 11
3.2.4 Bit and Character Oriented Interfaces ............. 12
3.2.5 Counter Size ...................................... 13
3.2.6 Interface Speed ................................... 15
3.2.7 Multicast/Broadcast Counters ...................... 16
4 Use of the Interface Test Table ....................... 16
5 Definitions ........................................... 19
6 Acknowledgements ...................................... 52
7 References ............................................ 53
8 Security Considerations ............................... 54
9 Authors' Address ...................................... 54
Expires December 1993 [Page 55]